Spring加载属性文件方式(自动加载优先级问题) / 张生荣 您所在的位置:网站首页 SpringBoot中jsp里面的静态资源js、css、images访问不到 Spring加载属性文件方式(自动加载优先级问题) / 张生荣

Spring加载属性文件方式(自动加载优先级问题) / 张生荣

2022-12-02 11:51| 来源: 网络整理| 查看: 265

目录 Spring加载属性文件 方式1、用xml文件配置 方式2、用注解 对Spring加载顺序的理解 web.xml初始化 spring加载流程 Spring加载属性文件 方式1、用xml文件配置

正常情况下,spring整合mybatis的配置文件的dataSource部分如下

                                         

可以将数据库的链接信息写到属性文件中,如下。

jdbc.url=jdbc:mysql://localhost:3306/ssm jdbc.driver=com.mysql.jdbc.Driver jdbc.username=root jdbc.password=123456

在spring配置文件中,就可以用${}的形式获取属性信息,但需要加入 标签设置属性文件的路径。即

                                    

但是由此会引发另一个问题,自动加载的优先级特别高(就是先实例化)

若org.mybatis.spring.SqlSessionFactoryBean的id为sqlSessionFactory,当自动注入时,org.mybatis.spring.mapper.MapperScannerConfigurer类下的SqlSessionFactory属性会自动注入,然后org.mybatis.spring.SqlSessionFactoryBean也会实例化,而org.mybatis.spring.SqlSessionFactoryBean中含有dateSourse,所以org.springframework.jdbc.datasource.DriverManagerDataSource也会实例化,但是这时属性文件还没有加载,造成程序出错Error setting property values,总而言之就是在属性文件加载之前,类实例化了,结果得不到属性文件中的值。

解决办法

第1步,更改org.mybatis.spring.SqlSessionFactoryBean的id名称,例如factory

第2步,将org.mybatis.spring.mapper.MapperScannerConfigurer中加入,如果用



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有